Демопроект для ИТ-485МБ на RapidSCADA
Возникла потребность разобраться с принципами работы SCADA-систем, благо и подопытный был - недавно разработанный модуль ИТ-485МБ. Поиск доступной информации в интернете дал ссылку на страничку со сводной таблицей, весьма полезной, хоть и устаревшей. Здесь сразу и тип лицензии, и ограничения, суммы для разных типов лицензий. После беглого обзора я остановился на двух системах - MasterSCADA и RapidSCADA. Причиной выбора была их бесплатность. Так как раньше с такими системами я не сталкивался, а платить деньги только ради изучения, причём в некоторых случаях - немалые, с неизвестным результатом я не хотел. Если первая программа бесплатна только до 32 тегов, то вторая авторами распространяется без ограничений и умеет обрабатывать до 65535 тегов. С неё то я и решил начать.
Скачал с официального сайта rapidscada.ru, установил весь комплект программ, открываю "Администратор" - и что? Где красивые кнопки, вентили, индикаторы уровней? Где логические элементы, которые запомнились при проектировании программ для ПЛК? Вместо этого база данных? Ладно, и не такое видел, посмотрим что у неё внутри. Берём документацию - опять сюрприз! Три документа, где меньше 20 страниц самый объёмный? Что там ещё на сайте? Две статьи с полезной информацией: "Подключение устройств с использованием стандарта OPC" и "Подключение устройств по протоколу Modbus" - скачать, сохранить. Первое, что хочется сделать - увидеть картинки. Беглое ознакомление с настройками показало, что программы используют порт 10000 на localhost. Пробую открыть его из браузера - и неудача! Читаю требования - нужен IIS и SilverLight! Хорошо, инсталлирую. И снова на 10000 порту нет внятного ответа. Что опять не так? Тут посетила мысль - а не написать ли авторам? Программа бесплатная, обычно в таких случаях особой надежды нет, но кто знает? Набрал быстренько вопрос, отправил, и дальше смотреть - вдруг что-то пропустил в описании? И точно! Оказывается, следует открывать адрес http://localhost/scada! Ура! Первый результат - видно готовые примеры! Хоть и без приложения собственных усилий, но уже кое-что. Отсюда мораль - "Если ни что не помогает - прочтите, наконец, инструкцию!" А тут и один из авторов ответил. Даже на такой глупый вопрос... Мне даже стало неловко.
Пора бы уже и с собственным устройством пообщаться - вон, лежит на столе, ждёт. Температуру измеряет, если подать питание. Тут есть два пути - через собственно MODBUS RTU поверх RS-485, по которому и общается модуль с внешним миром, или же через прослойку в виде OPC сервера. MODBUS с наскока не поддался настройке, возможно, потому что он был первым. Всё же SCADA - это новый класс программ для меня, и значит, надо ещё понять, какая идея заложена в их основу. Тогда остаётся второй вариант, и для этого нужен OPC сервер. Поисковики вывели на бесплатный Modbus Universal MasterOPC Server 32, до 32 тегов, что в моём случае вполне достаточно. Настройка данной программы далась легче, так как к этому моменту уже знал, что ожидать, и в голове складывалось понимание, как должна работать вся связка. Здесь я со следующей проблемой - не соединялись OPC сервер и RapidSCADA. Ну как не соединялись.. Не совсем. Сервер виден, и даже можно получить список доступных переменных, как на приведённом снимке экрана, но вот значения самих переменных получать не удавалось.
Документация подсказала в каком направлении копать - DCOM. Как позже выяснилось - это распространённая проблема, касающаяся и других подобных систем. Если точнее - дело в безопасности, правах доступа. Авторы RapidSCADA предлагают два варианта решения:
Вариант 1. В параметрах DCOM для OPC-сервера необходимо установить запуск от имени конкретного пользователя, который является администратором компьютера.
Вариант 2. Установить запуск от имени конкретного пользователя в свойствах службы ScadaCommService. Пользователь также должен являться администратором компьютера.
Второй способ выглядел более логичным, но, к сожалению, результата не дал. Да и первый сработал не совсем в том виде, каком был приведён: в настройке Панель управления\Система и безопасность\Администрирование\Службы компонентов вместо выбора варианта "Указанный пользователь" помог выбор варианта "Текущий пользователь" из учётной записи с правами администратора.
Чуть позже, по совету авторов, я оставил в покое OPC сервер и всё же разобрался с настройкой MODBUS. Как оказалось, когда есть понимание работы всего механизма - ничего сложного.
Проблема, с которой столкнулся, - это настройка Communicator для работы с ИТ-485МБ. Если внимательно (повторяю - внимательно) читал бы документацию, то всё было бы проще. Для таких, как я, опишу основные моменты. С конфигурационным файлом всё относительно просто - переходим на настройку модуля, как описано в инструкции по MODBUS, указываем адреса регистров на чтение и запись, адрес устройства на шине, сохраняем файл. Потом имя этого файла указываем в качестве одного из параметров - "Командная строка". И обязательно прописать, скопировать имена и номера линии связи и КП! Без этого опрос идти возможно и будет, но вот данные останутся недоступны в остальных модулях RapidSCADA. Потом переходим к описанию входных каналов и каналов управления. Причём, входной канал может брать как непосредственно данные, так и вычислять какие-либо расчётные, основываясь на данных других каналов, условиях, и много чём ещё.
Вот на таких мелочах и становится понятно, что подобная программа, сделанная как база данных - это очень удобно. С одной стороны - да, непривычно без графики, но когда все связи отслеживаются и видны как одно свойство, когда можно писать свои функции на C# ... Я полагаю, те, кто знаком с программированием смогут подобную гибкость оценить по достоинству.
Однако, следует учесть один важный момент. SCADA системы не предназначены для автоматического управления. Да, они могут задавать параметры регуляторов, ПЛК, получать от них данные, принимать и передавать исполнительным устройствам команды от оператора, но SCADA не предназначены принимать какие-либо решения. Это функция оператора или автоматического регулятора, команду которому может отдать оператор, но ни как не самой SCADA.
По ссылке файлы проекта, и в дополнение ещё снимки экрана.
krasavt.ru
Терентьев Олег
DosBox под Win x64, или TurboC 3.0 для ADAM-4501
Коллеге потребовалось изменить старый проект для ADAM-4501, но вот незадача - после последнего случая использования средств разработки под него операционная система на компьютере коллеги увеличила свою разрядность - стала 64-разрядной. А под ней TurboC 3.0 не запускается! Собственно, компилятор не важен, но ADAM-4501 работает на 80186, и нужна генерация соответствующего кода. Первый вариант, который тут же был опробован, - установка режима совместимости с более ранними версиями Windows, ничем не помог. Следующий, наиболее очевидный шаг, это установка виртуальной машины с 32-разрядной версией Windows на ней. Однако - как быть с COM-портами, через которые должно программироваться целевое устройство? Да, в современных "виртуалках" порты можно сделать доступными, но хотелось чего-то большего. Например - редактора или IDE...
Демопроект для ИТ-485МБ на RapidSCADA
Возникла потребность разобраться с принципами работы SCADA-систем, благо и подопытный был - недавно разработанный модуль ИТ-485МБ. Поиск доступной информации в интернете дал ссылку на страничку со сводной таблицей, весьма полезной, хоть и устаревшей. Здесь сразу и тип лицензии, и ограничения, суммы для разных типов лицензий. После беглого обзора я остановился на двух системах - MasterSCADA и RapidSCADA. Причиной выбора была их бесплатность. Так как раньше с такими системами я не сталкивался, а платить деньги только ради изучения, причём в некоторых случаях - немалые, с неизвестным результатом я не хотел. Если первая программа бесплатна только до 32 тегов, то вторая авторами распространяется без ограничений и умеет обрабатывать до 65535 тегов. С неё то я и решил начать. Скачал с официального...